In a communication system, call processing facilitates connectivity between two or more communication devices on a network. These communication devices include conventional phones, video-phones, or other types of devices that carry audio and/or video information. Initially, call processing uses a call setup process to allocate communication resources to be used by the communication devices when communicating over a network. For example, this may include allocating bandwidth and storage buffers on the system to be used by different communication devices to use during voice or data communication. A call tear-down process breaks the communication connection between the communication devices and reallocates the communication resources back to the system once the communication is completed.
Some communication networks use a call processor (CP) to perform the call setup and call tear-down processes. On larger networks multiple CPs handle the call setup and tear down processes. These CPs use signaling to communicate with the communication devices during the call setup and call tear-down processes.
In conventional systems CPs are statically associated with the particular communication devices throughout the call setup and tear down process. The association between a communication device and a CP remains constant even when call patterns change within the network. Unfortunately, calls often overload the network because several CPs become overloaded, even though other CPs are available to process calls. For example, increased communication activity on one part of the network may overload a single CP with call processing tasks while another CP on the network remains idle waiting for communication activity. Accordingly, it is desirable to implement methods and apparatus for processing communications on a multiprocessor network that prevent, or at least minimize the number of, processors that become overloaded.